/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package beans;

import entity.PerfilUsuarioEntity;
import entity.UsuarioEntity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.component.UIData;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import servicios.UsuarioBO;

/**
 *
 * @author Tavo
 */


public class Usuarios
{

    private String nombre;
    private String apPat;
    private String apMat;
    private String correo;
    private String password;
    private String error="Error mano";

    private List<UsuarioEntity> listaUsuarios;
    private String perfilUsu;
    private List<PerfilUsuario> listaPerfiles;
    private List<String> perfiles;
    private List<UsuarioEntity> listaUsuariosNuevos;
    private UsuarioBO usuarioBO = new UsuarioBO();

    private UIData seleccion;
    private Map<String, Integer> mapaDatos;

    public void setNombre(String nombre){
        this.nombre = nombre;
    }
    public String getNombre(){
        return this.nombre;
    }
    public void setApPat(String apPat){
        this.apPat = apPat;
    }
    public String getApPat(){
        return this.apPat;
    }
    public void setApMat(String apMat){
        this.apMat = apMat;
    }
    public String getApMat(){
        return this.apMat;
    }
    public String getCorreo() {
        return correo;
    }
    public void setCorreo(String correo) {
        this.correo = correo;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getError() {
        return error;
    }
    
    public List getListaUsuarios(){
        //obtenerUsuarios();
        return listaUsuarios;
    }
    public void setListaUsuarios(List listaUsuarios){
        this.listaUsuarios = listaUsuarios;
    }
    public String getPerfilUsu(){
        return perfilUsu;
    }
    public void setPerfilUsu(String perfilUsu){
        this.perfilUsu = perfilUsu;
    }
    public List getListaPerfiles(){
        obtenerPerfiles();
        return listaPerfiles;
    }
    public void setListaPerfiles(List listaPerfiles){
        this.listaPerfiles = listaPerfiles;
    }

    public void setPerfiles(List perfiles){
        this.perfiles = perfiles;
    }
    public List getPerfiles(){
        buscarPerfiles();
        return perfiles;
    }
    public void setListaUsuariosNuevos(List listaUsuariosNuevos){
        this.listaUsuariosNuevos = listaUsuariosNuevos;
    }
    public List getListaUsuariosNuevos(){
        obtenerUsuariosNuevos();
        return listaUsuariosNuevos;
    }

    public void obtenerUsuarios(){
       listaUsuarios = new ArrayList();
       listaUsuarios = usuarioBO.obtenerUsuarios();
       if(listaUsuarios!=null){
           for(UsuarioEntity usuario:listaUsuarios)
               System.out.println(usuario.getNombreusuario());
       }
       else System.out.println("Lista vacia");
       //return listaUsuarios;
    }

    public void obtenerUsuariosNuevos(){
       listaUsuariosNuevos = new ArrayList();
       listaUsuariosNuevos = usuarioBO.obtenerUsuariosNuevos();
       if(listaUsuariosNuevos!=null){
           for(UsuarioEntity usuario:listaUsuariosNuevos)
               System.out.println(usuario.getNombreusuario());
       }
       else System.out.println("Lista vacia");
    }

    public void obtenerPerfiles(){
        listaPerfiles = new ArrayList();
        listaPerfiles = usuarioBO.obtenerPerfiles();
        //if(listaPerfiles!=null){
          // for(PerfilUsuario perfil:listaPerfiles){
            //   System.out.println(perfil.getValorPerfil());
           //}
       //}
       //else System.out.println("Lista vacia");
    }

    public void buscarPerfiles(){
        //String valorPerfil="";
        //listaPerfiles = usuarioBO.obtenerPerfiles();
        perfiles = new ArrayList();
        obtenerPerfiles();
        if(listaPerfiles!=null){
            mapaDatos = new HashMap<String,Integer>();
            for(PerfilUsuario perfil:listaPerfiles){
                mapaDatos.put(perfil.getValorPerfil(), perfil.getIdPerfil());
                System.out.println(mapaDatos.get(perfil.getValorPerfil()));
                //String valorPerfil = perfil.getValorPerfil();
                System.out.println(perfil.getValorPerfil());
                perfiles.add(perfil.getValorPerfil());
            }
        }
        else System.out.println("Lista perfiles vacia");
    }

    public void saveUsuario(ActionEvent event){
        int idPerfil = 0;
        int idUsuario = 0;
        System.out.println(perfilUsu);
        idPerfil = mapaDatos.get(perfilUsu);
        PerfilUsuarioEntity perfil = new PerfilUsuarioEntity();
        perfil.setIdperfil(idPerfil);
        perfil.setValorperfil(perfilUsu);
        idUsuario = usuarioBO.saveUsuario(nombre,apPat,apMat,correo,password,perfil);
        System.out.println("ID Usuario: " + idUsuario);
    }

    public void saveUsuarioNuevo(ActionEvent event){
        int idUsuario=0;
        idUsuario = usuarioBO.saveUsuarioNuevo(nombre,apPat,apMat,correo);
        System.out.println(idUsuario);
    }

    public void autorizarUsuario(ActionEvent event){
        UsuarioEntity usuario = (UsuarioEntity)seleccion.getRowData();
        System.out.println(usuario.getNombreusuario() + " " + usuario.getIdusuario());
    }
    /*public void getUsuarioByName(){
        listaUsuarios = new ArrayList();
        listaUsuarios = usuarioBO.getUsuarioByNombre();
        if(listaUsuarios!=null){
            for(UsuarioEntity usuario:listaUsuarios)
                System.out.println(usuario.getNombreusuario());
        }
        else System.out.println("Lista vacia");
    }*/

}
